const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

const db = cloud.database()

exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const openid = wxContext.OPENID
  const { orderId, productId, rating, comment } = event
  
  try {
    // 验证参数
    if (!orderId || !productId || !rating || !comment) {
      return {
        success: false,
        message: '参数不完整'
      }
    }
    
    if (rating < 1 || rating > 5) {
      return {
        success: false,
        message: '评分必须在1-5之间'
      }
    }
    
    // 获取当前时间
    const now = new Date()
    
    // 创建评价记录
    const reviewRecord = {
      rating,
      comment: comment.trim(),
      createdAt: now,
      _openid: openid // 存储用户标识，但前端显示为匿名
    }
    
    // 查询商品是否存在
    const product = await db.collection('goods').doc(productId).get()
    if (!product.data) {
      return {
        success: false,
        message: '商品不存在'
      }
    }
    
    // 将评价添加到商品的comments数组
    await db.collection('goods').doc(productId).update({
      data: {
        comments: db.command.push(reviewRecord)
      }
    })
    
    // 更新订单状态为已完成（从待评价到已完成）
    await db.collection('orders').doc(orderId).update({
      data: {
        status: 'completed',
        completedAt: now
      }
    })
    
    return {
      success: true,
      message: '评价提交成功'
    }
    
  } catch (error) {
    console.error('提交评价失败:', error)
    return {
      success: false,
      message: error.message || '提交评价失败'
    }
  }
}